import {
  getTimeNow
} from "../../utils/getTimeNow"
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 收件地址
    address: '',
    // 上传的文件
    uploadFile: '',
    // 页数
    pagination: '',
    // 备注
    remark: '',
    // 彩印
    colorPrint: false,
    // 双面
    doubleSided: false,
    // 需要支付的金额
    money: 3,
    // 用户信息
    userInfo: ''
  },

  // 上传文件
  uploadFile() {
    wx.chooseMessageFile({
      count: 1,
      type: 'file',
      success: (res) => {
        const {
          // 本地临时文件路径
          path,
          // 文件名字
          name
        } = res.tempFiles[0]
        const id = Math.floor(Math.random() * 1000)
        wx.showLoading({
          title: '正在上传中...',
        })
        // 将本地资源上传至云存储空间
        wx.cloud.uploadFile({
          // 要上传文件资源的路径
          filePath: path,
          // 部分云存储路径
          cloudPath: `print/${id}${name}`,
          success: (result) => {
            this.setData({
                // result.fileID是完整的云存储路径
                uploadFile: result.fileID
              }),
              wx.hideLoading()
            wx.showToast({
              title: '上传成功!',
              icon: 'success'
            })
          },
          fail: (err) => {
            wx.showToast({
              title: '上传失败！',
              icon: 'error'
            })
          }
        })
      }
    })
  },

  // 预览
  preview() {
    wx.openDocument({
      filePath: this.data.uploadFile,
    })
  },

  // 获取页数
  getCount(e) {
    this.setData({
      pagination: e.detail
    })
    this.getMoney()
  },

  // 获取备注信息
  getRemark(e) {
    this.setData({
      remark: e.detail
    })
  },

  // 获取彩印信息
  getColorPrint(e) {
    this.setData({
      colorPrint: e.detail.value
    })
    this.getMoney()
  },

  // 获取双面信息
  getSided(e) {
    this.setData({
      doubleSided: e.detail.value
    })
  },

  // 需要支付的金额
  getMoney() {
    let {
      pagination,
      colorPrint,
      money
    } = this.data
    money = pagination * (colorPrint ? 2 : 0.5) + 3
    this.setData({
      money
    })
  },

  // 立即发布
  publish() {
    const {
      address,
      uploadFile,
      pagination,
      remark,
      colorPrint,
      doubleSided,
      money,
      userInfo
    } = this.data
    if (!address || !uploadFile || !pagination) {
      wx.showToast({
        title: '填写的信息不全！',
        icon: 'error'
      })
      return
    }
    db.collection('order').add({
      data: {
        // 模块类型
        name: '打印服务',
        // 事件戳
        timeStamp: Date.parse(getTimeNow()),
        // 当前时间
        time: getTimeNow(),
        // 订单金额
        money,
        // 订单状态
        state: '待帮助',
        // 收件地址
        address,
        // 订单信息
        orderInfo: {
          // 备注信息 
          remark,
          // 上传的图片
          uploadFile,
          // 页数
          pagination,
          // 是否彩印
          colorPrint,
          // 是否双面
          doubleSided
        },
        // 用户信息
        userInfo,
      },
      success: (res) => {
        wx.switchTab({
          url: '../../pages/index/index',
        })
        wx.showToast({
          title: '发布成功',
          icon: 'success',
        })
      }
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取用户的个人信息
    const userInfo = wx.getStorageSync('userInfo')
    this.setData({
      userInfo
    })

    // 获取用户选中的地址
    const selectAddress = wx.getStorageSync('selectAddress')
    if (!selectAddress) return
    this.setData({
      address: `${selectAddress.bulid}-${selectAddress.houseNumber}`
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})